1. Field of the Invention
The present invention relates, in general, to network information access and, more particularly, to software, systems and methods for providing database services in a coordinated fashion from multiple cooperating database servers.
2. Relevant Background
Increasingly, business data processing systems, entertainment systems, and personal communications systems are implemented by computers across networks that are interconnected by internetworks (e.g., the Internet). The Internet is rapidly emerging as the preferred system for distributing and exchanging data. Data exchanges support applications including electronic commerce, broadcast and multicast messaging, videoconferencing, gaming, and the like. In electronic commerce (e-commerce) applications, it is important to provide a satisfying buying experience that leads to a purchase transaction. To provide this high level of service, a web site operator must ensure that data is delivered to the customer in the most usable and efficient fashion. Also, the web site operator must ensure that critical data received from the customer is handled with priority.
A vast amount of information is stored in databases. These databases have been developed over time with different schemas, formats, and database management systems. Databases vary from 20 year old (or more) “legacy” systems to modern object oriented database systems. In most cases, a database was developed for a particular application to be used by a defined set of computers either directly or over a local area network. In such cases, the computers and users could readily be specially configured and trained to use the database. However, these systems are difficult to expand to new computers and users.
With the advent of the Internet, computing appliances that can potentially act as interfaces to a database have potentially ubiquitous access to this stored database information. Public network and, in particular, the Internet promise to enable ready access from a wide variety of computing appliances at a wide variety of locations. However, public networks do not inherently support the various formats required by the wide variety of existing database systems. As a result, much of the stored information is not available to Internet users.
The Internet is a collection of disparate computers and networks coupled together by a web of interconnections using standardized communications protocols. While most Internet access is currently performed using conventional personal computers and workstations, the variety of devices that access the Internet is growing quickly and expected to continue to grow. Wireless devices such as telephones, pagers and connected personal digital assistants (PDAs) are increasingly common. It is expected that a variety of appliances and devices within offices, businesses, and households will support Internet connectivity in the coming years. As a result, supporting interfaces to these devices has become a significant issue in the problems associated with providing services over the Internet, including database services. For example, it is desirable to format data returned to a cellular phone or pager much differently than might be desirable on a workstation having a high bandwidth connection and advanced graphics processing and display capability. Conventional database systems do not recognize the different demands required by such diverse access devices.
The Internet is characterized by its vast reach as a result of its wide and increasing availability and easy access protocols. Unfortunately, the heterogeneous nature of the Internet results in variable bandwidth and quality of service between points. The latency and reliability of data transport is largely determined by the total amount of traffic on the Internet and so varies wildly seasonally and throughout the day. Other factors that affect quality of service include equipment outages and line degradation that force packets to be rerouted, damaged and/or dropped. Also, routing software and hardware limitations within the Internet infrastructure may create bandwidth bottlenecks even when the mechanisms are operating within specifications. The variable nature of the quality of service (QOS) provided by the Internet has made development and deployment of database systems that leverage the Internet infrastructure difficult.
Current methods of database access involve configuring an intermediate front-end server, such as a web-server, to interface with the database system. A web designer creates an input form on a browser interface comprising one or more HTML input controls. The HTML is converted to XML in most cases due to the increased functionality available through the XML language. The XML is processed by a server that generates query language messages in the database's native query language.
For more complex, high volume database environments, a database management system (such as Oracle) implements a web “listener” that monitors its network interface and identifies dB query/management related packets. The packets must be properly formed at the client, but the query may be embedded in a conventional HTTP packet. The listener creates a socket for the database access request/response. Listeners are closely coupled to the database themselves, however, and typically are implemented by software processes that are dedicated to a particular database type.
In either type of implementation, the web server interface easily becomes a critical bottleneck in database performance. Even where the underlying database systems are designed for high volume, the web server that presents that database to the Internet has limited resources for processing requests. These resources include software and hardware resources within the web server that create and maintain connections to clients, as well as resources used to translate requests into a database recognized format and translate responses to formats that can be recognized by clients. Many web servers may be required to support even modest activity rates. This becomes difficult and expensive for the database owner to establish and administer.
As a result of these difficulties, it is a significant undertaking for the owner of a database to place the contents on-line through the Internet. In e-commerce environments, for example, catalogs, inventories, customer support databases and the like cannot be easily made network accessible. Alternatively, database owners may be required to upgrade databases to more net-accessible forms. Although this may make maintenance easier, this often compromises database performance. In many cases, database owners create a shadow copy of an operational database so that the Internet access port can use the shadow database rather than the operational database. Such solutions face the same mapping difficulties discussed above, with the additional task of periodically synchronizing the operational database to the shadow copies. Nevertheless, the shadow copy is almost always out of date to a degree and so is not effective for applications with volatile data such as many e-commerce applications.
Internet transport protocols do not discriminate between users. Data packets are passed between routers and switches that make up the Internet fabric based on the hardware's instantaneous view of the best path between source and destination nodes specified in the packet. Because each packet may take a different path, the latency of a packet cannot be guaranteed and, in practice, varies significantly. Likewise, data packets are routed through the Internet without any prioritization based on content.
Conventional database systems also lack prioritization features. However, in an Internet environment, it is desirable to prioritize some database access requests over others. For example, a request for a stock ticker code and a request for current stock value have very different needs. A ticker code is static while the stock value information changes rapidly. This information may reside in a single database, however, and the database software typically does not prioritize one request over another. Even where multiple databases are used, these disparate priority requests are often routed through the same web server that connects the databases to the Internet. A need exists for a system and method that enables database access in a manner that enables prioritization of requests and responses.
Prioritization has not been an issue with conventional database systems operated over local area networks (LANs) and wide area networks (WANs) because the average latency of such networks has been sufficiently low and sufficiently uniform to provide acceptable performance to all users. However, there is an increasing demand for network applications such as database services that cannot tolerate high and variable latency. This situation is complicated when the application is to be run over the Internet where latency and variability in latency are many times greater than in LAN and WAN environments.
A particular need exists in environments that involve multiple users accessing a shared network resource such as a database server or database management system. Examples include broadcast, multicast and videoconferencing as well as most electronic commerce (e-commerce) applications. In these applications, it is important to maintain a reliable connection so that the server and clients remain synchronized and information is not lost.
Another trend in database services is to implement a database in a distributed fashion across multiple servers. These servers are often geographically and/or logically distributed in a network topology. Distributed databases not only makes the variable QOS issues more relevant and harder to solve, but may also require greater duplication of resources that must be maintained to manage access to the databases in a coordinated fashion. A distributed database system may distribute the data itself to various servers, the services and functionality required to access the databases (e.g., query formulation and processing) remain essentially confined to the server upon which they are implemented. A need exists for systems and methods for distributing the functionality provided by a database management and access system throughout a network environment.